import { IPSAppDataEntity } from '../../app/dataentity/ipsapp-data-entity';
import { IPSControlItem } from '../ipscontrol-item';
import { IPSControlMDataContainer } from '../ipscontrol-mdata-container';
import { IPSControlObjectNavigatable } from '../ipscontrol-object-navigatable';
import { IPSControlXDataContainer } from '../ipscontrol-xdata-container';
import { IPSDEContextMenu } from '../toolbar/ipsdecontext-menu';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';

/**
 *
 * @export
 * @interface IPSMapItem
 */
export interface IPSMapItem
  extends IPSControlItem,
    IPSControlXDataContainer,
    IPSControlMDataContainer,
    IPSControlObjectNavigatable {
  /**
   * 默认背景颜色
   * @type {string}
   */
  bKColor: string;

  /**
   * 边框颜色
   * @type {string}
   */
  borderColor: string;

  /**
   * 边框宽度
   * @type {number}
   */
  borderWidth: number;

  /**
   * 默认文本颜色
   * @type {string}
   */
  color: string;

  /**
   * 动态样式表
   * @type {string}
   */
  dynaClass: string;

  /**
   * 项样式
   * @description 值模式 [地图项样式] {POINT：点、 POINT2：点2、 POINT3：点3、 POINT4：点4、 LINE：连线、 LINE2：连线2、 LINE3：连线3、 LINE4：连线4、 REGION：区域、 REGION2：区域2、 REGION3：区域3、 REGION4：区域4、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'POINT' | 'POINT2' | 'POINT3' | 'POINT4' | 'LINE' | 'LINE2' | 'LINE3' | 'LINE4' | 'REGION' | 'REGION2' | 'REGION3' | 'REGION4' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  itemStyle:
    | string
    | 'POINT'
    | 'POINT2'
    | 'POINT3'
    | 'POINT4'
    | 'LINE'
    | 'LINE2'
    | 'LINE3'
    | 'LINE4'
    | 'REGION'
    | 'REGION2'
    | 'REGION3'
    | 'REGION4'
    | 'USER'
    | 'USER2'
    | 'USER3'
    | 'USER4';

  /**
   * 项类型
   * @type {string}
   */
  itemType: string;

  /**
   * 最大加载项数
   * @type {number}
   */
  maxSize: number;

  /**
   * 代码模型对象
   * @type {string}
   */
  modelObj: string;

  /**
   * 名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  getNamePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 上下文菜单对象
   *
   * @type {IPSDEContextMenu}
   */
  getPSDEContextMenu(): IPSDEContextMenu | null;

  /**
   * 项界面样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 项图标对象
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 半径
   * @type {number}
   */
  radius: number;

  /**
   * 图形动态样式表
   * @type {string}
   */
  shapeDynaClass: string;

  /**
   * 图形界面样式表
   *
   * @type {IPSSysCss}
   */
  getShapePSSysCss(): IPSSysCss | null;
}
